#include "Utils.h"

#include <string>

using namespace std;

int Utils::getRandomIndex(int n, int m){
	kTime++;
	if (kTime > 100) kTime = 0;
	srand(time(NULL));
	int k = rand();
	srand((kTime + k+31215*m+101)%102131);
	return rand() % n;

}

int Utils::getRandomIndex(int n){
	return getRandomIndex(n, 0);
}
int* Utils::getArrRandomNumber(int numberArr)
{
	int* arr_RandomNumber = new int[numberArr];
	std::vector<int> arr_IsNotExist = GeneratorNumber(numberArr);
	// Create arr with value not duplicate
	for (int i = 0; i < numberArr; i++)
	{
		srand(time(NULL));
		int index = rand() % arr_IsNotExist.size();
		arr_RandomNumber[i] = arr_IsNotExist[index];
		arr_IsNotExist.erase(arr_IsNotExist.begin() + index);
	}
	return arr_RandomNumber;
}
vector<int> Utils::GeneratorNumber(int numberArr)
{
	vector<int> arr_IsNotExist;
	for (int i = 0; i < numberArr; i++)
	{
		arr_IsNotExist.push_back(i);
	}
	return arr_IsNotExist;
}
std::vector<int> Utils::getArrRandomFolder(int numberArr)
{
	std::vector<int> arr_RandomNumber;
	std::vector<int> arr_IsNotExist = GeneratorNumber(numberArr);
	// Create arr with value not duplicate
	for (int i = 0; i < numberArr; i++)
	{
		srand(time(NULL));
		int index = rand() % arr_IsNotExist.size();
		arr_RandomNumber.push_back(arr_IsNotExist[index]);
		arr_IsNotExist.erase(arr_IsNotExist.begin() + index);
	}
	return arr_RandomNumber;
}
vector<string> Utils::GeneratorImg(int numberArr)
{
	vector<string> arr_IsNotExist;
	__String *img;
	int count = 0, numberCouple = 1;
	for (int i = 0; i < numberArr; i++)
	{
		img = __String::createWithFormat("as_%d_%d.png",i+1,numberCouple);
		arr_IsNotExist.push_back(img->getCString());
		count++;
		if (count == 2)
		{
			count = 0;
			numberCouple++;
		}
	}
	return arr_IsNotExist;
}
vector<string> Utils::getArrRandomNumberImg(int numberArr)
{
	vector<string> arr_RandomNumber;
	std::vector<string> arr_IsNotExist = GeneratorImg(numberArr);
	for (int i = 0; i < numberArr; i++)
	{
		srand(time(NULL));
		int index = rand() % arr_IsNotExist.size();
		arr_RandomNumber.push_back( arr_IsNotExist[index].c_str());
		arr_IsNotExist.erase(arr_IsNotExist.begin() + index);
	}
	/*for (int j = 0; j < arr_RandomNumber.size(); j++)
	{
		log("-----img[%d]----------:%s", j, arr_RandomNumber[j].c_str());
	}*/
	return arr_RandomNumber;
}